import java.sql.*;
import java.io.*;

public
class DatabaseTest
{
	public static DatabaseTest databaseTest;
	protected Connection connection = null;
	public static PrintWriter outp = null;
	
	public DatabaseTest()
	{
		try{
			connect("test");
			doQuery();
		}
		catch(SQLException e){
			outp.println("Bd: " + e);
			while((e = e.getNextException()) != null){
			}
		}
		finally{
			close();
		}
	}
	public static void setOutput()
	{
		try{
		outp = new PrintWriter(new OutputStreamWriter(System.out, "Cp852"), true);
		}
		catch(UnsupportedEncodingException e){
			System.out.println("Nie mona ustawi strony kodowej Cp852.");
			outp = new PrintWriter(new OutputStreamWriter(System.out), true);
		}
	}
	public static void main(String args[])
	{
		setOutput();
		databaseTest = new DatabaseTest();
	}
	public void connect(String databaseName)
	throws SQLException
	{
		try{
			Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
		}
		catch(ClassNotFoundException e){
			outp.println("Bd przy adowaniu sterownika bazy: " + e);
			System.exit(-1);
		}
		connection = DriverManager.getConnection("jdbc:odbc:" + databaseName);
		outp.println("\nPoczenie nawizane!\n");
	}
	public void close()
	{
		try{
			connection.close();
		}
		catch(SQLException e){
			outp.println("Bd: " + e);
			while((e = e.getNextException()) != null){
			}
			System.exit(-1);
		}
		outp.println("\nPoczenie zamknite!\n");
	}
	public void doQuery()
	throws SQLException
	{	
		Statement statement = connection.createStatement();
		String query = "UPDATE PRACOWNIK SET ZAROBKI = ";
		query += "ZAROBKI * 1.10 WHERE ROK_ZATRUDNIENIA";
		query += "< 1999";

		connection.setAutoCommit(false);
		
		try{
			int count = statement.executeUpdate(query);
		outp.println("Ilo zmodyfikowanych rekordw [faza1]: " + count + "\n");
			query = "UPDATE PRACOWNIK SET ZAROBKI = ";
			query += "ZAROBKI * 1.15 WHERE STANOWISKO";
			query += " = 'kierownik'";
			count = statement.executeUpdate(query);
		outp.println("Ilo zmodyfikowanych rekordw [faza2]: " + count + "\n");
		}
		catch(SQLException e){
			connection.rollback();
			throw e;
		}
		connection.commit();
		statement.close();
	}
}
